<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task Descriptor: 架构分析</title>
<meta name="uma.type" content="TaskDescriptor">
<meta name="uma.name" content="architectural_analysis">
<meta name="uma.presentationName" content="架构分析">
<meta name="uma.guid" content="_Puw8YEocEdqrjq4i3fchvA">
<meta name="element_type" content="TaskDescriptor">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ActivityTreeTable.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ProcessElementPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/processElementData.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var defaultQueryStr = '?proc={002674F9-6511-4D15-8623-B761D8C48986}&path={002674F9-6511-4D15-8623-B761D8C48986},{71ADFE9A-34A0-41BD-8A17-BEA3210E2BBD},_Puw8YEocEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_Puw8YEocEdqrjq4i3fchvA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task Descriptor: 架构分析</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/taskdes_lg_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">此任务侧重于定义备选架构和限制系统所采用的架构技术。</td>
</tr>
<tr>
<td>Based on Method Task: <a href="./../../rup/tasks/architectural_analysis_2B9BE03.html" guid="{8CB48402-D4C5-4E17-BB33-507315CB1BBF}">架构分析</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Main:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_software_architect_23739CE6.html" guid="_COQSEhi2Edq_uI8xTPML6g">软件设计人员</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Additional:
								</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">Assisting:
								</span></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_glossary_EECE8ADF.html" guid="_COQSFBi2Edq_uI8xTPML6g">词汇表</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_risk_list_D05A730C.html" guid="_Pu3DAEocEdqrjq4i3fchvA">风险列表</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_vision_2E117CF6.html" guid="_COQSExi2Edq_uI8xTPML6g">远景</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_supplementary_specification_77F24F1D.html" guid="_COQSHBi2Edq_uI8xTPML6g">补充规范</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_architectural_proof_of_concept_326B3CF7.html" guid="_Pu3DA0ocEdqrjq4i3fchvA">架构概念验证</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_software_architecture_document_DAF8531C.html" guid="_Pu3DAUocEdqrjq4i3fchvA">软件架构文档</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_design_model_94EC552B.html" guid="_Pu3DBEocEdqrjq4i3fchvA">设计模型</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_project_specific_guidelines_B7354134.html" guid="_COQSGxi2Edq_uI8xTPML6g">特定于项目的指南</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_reference_architecture_C9916732.html" guid="_Pu3DAkocEdqrjq4i3fchvA">引用架构</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_usecase_model_AC976124.html" guid="_COQSGhi2Edq_uI8xTPML6g">用例模型</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">External:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="3">
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_deployment_model_9F8A353B.html" guid="_Pu3DBUocEdqrjq4i3fchvA">部署模型</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_analysis_model_80E55756.html" guid="_FmBbMEaBEdqUkdzVfCuHXg">分析模型</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_software_architecture_document_DAF8531C.html" guid="_Pu3DAUocEdqrjq4i3fchvA">软件架构文档</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_design_model_94EC552B.html" guid="_Pu3DBEocEdqrjq4i3fchvA">设计模型</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> 编写架构概述</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Develop Architecture Overview" name="Develop Architecture Overview"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <td width="5%">
                    <b>目的</b>
                </td>
                <td>
                    通过探索并评估高级别架构选项来协助系统预测。&nbsp;<br />
                    较早地将对目标系统的高级别结构的理解传达给资助者、开发团队和其他项目干系人。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    架构概述在项目生命周期的早期创建，可能早在先启阶段就创建。它反映早期的决策以及对实现愿景的有效假设，以及关于物理和逻辑架构的决策和系统的非功能要求。它由软件架构师（通常与项目资助者合作）制作，采用的形式是非正式的、有丰富图片的故事板或形象图。从概念上讲，它说明提议的解决方案的基本性质，传递主要思想并包含主要构造块。架构概述的正式程度视具体的项目而定。例如，在较大的、正式度较高的项目中，可能有必要在“软件架构”文档的适当部分记录架构概述，这样它就可以接受正式评审。
</p>
<p>
    此时，架构概述是临时的初审。在可执行架构原型已经使架构（包括设计、实现和部署问题）有效前，请不要根据架构概述图付诸实现。
</p>
<p>
    请考虑根据参考架构、其他<a class="elementLinkWithUserText" href="./../../rup/guidances/concepts/software_architecture_4269A354.html#Architectural Patterns" guid="3.066252221588648E-305">架构模式</a>或其他架构资产来创建架构。
</p>
<p>
    考虑您是否要优化并维护架构概述图以充当交流载体。
</p>
<p>
    许多系统都被限制在现有的硬件和软件环境中进行开发和部署；对于这些系统，软件架构师将收集关于当前环境的信息。
</p>
<p>
    例如，在电子商务系统开发中，以下信息是相关的：
</p>
<ul>
    <li>
        现有网络的逻辑和物理设计
    </li>
    <li>
        现有的数据库和数据库设计
    </li>
    <li>
        现有的 Web 环境（服务器、防火墙等等）
    </li>
    <li>
        现有的服务器环境（配置、软件版本、计划的升级）
    </li>
    <li>
        现有的标准（网络、命名、协议等等）
    </li>
</ul>
<p>
    这样的信息可以用文本的形式记录，也可以记录在<a class="elementLink" href="./../../rup/workproducts/rup_deployment_model_57DF1DF5.html" guid="{5981B6BE-2FD1-4984-AA94-2F7428439BA6}">部署模型</a>中。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 调查可用资产</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Survey Available Assets" name="Survey Available Assets"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <td width="5%" colspan="2">
                    <b>目的</b>
                </td>
                <td width="95%" colspan="2">
                    确定可能与项目相关的资产。<br />
                    分析资产与项目要求之间的适合情况和差距。<br />
                    决定是否将系统的领域基于资产之上。<br />
                    找到并列出可能可以在项目中重复使用的资产。<br />
                    执行初步的评估，以确保潜在可获得必要的支持。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    您需要了解考虑资产的环境的要求以及要求的系统范围和一般功能。在组织资产库和行业资料中搜索，找到资产或类似的项目。有几类资产需要考虑，如（但不限于）行业模型、框架、类和经验。您将需要评估可用的资产是否有助于解决当前项目的关键挑战，以及它们是否与项目的约束兼容。
</p>
<p>
    您将希望分析资产和客户需求之间的适合程度，考虑是不是有可以协商的需求（以使资产可用）。
</p>
<p>
    请确保您确实评估了是否可以修改或扩展资产以满足需求，以及会有怎样的代价（从采用资产的成本、风险和功能的角度）。
</p>
<p>
    最后，您还需要大体上决定是否使用一个或多个资产并记录这一决策的理由。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 定义子系统的高层组织</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_design_subsystem__defining_high-level_organization_of" name="XE_design_subsystem__defining_high-level_organization_of" text="定义高级别组织" key="设计子系统（design subsystem）"></a><a id="Define the High-Level Organization of Subsystems" name="Define the High-Level Organization of Subsystems"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <td width="5%" colspan="2">
                    <b>目的</b>
                </td>
                <td colspan="2">
                    创建“设计模型”的初始结构。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    当重点为在先启阶段执行架构合成时，此任务不包括此步骤。
</p>
<p>
    一般情况下，设计模型是分层组织的 － 常见的<a class="elementLinkWithUserText" href="./../../rup/guidances/concepts/software_architecture_4269A354.html#Architectural Patterns" guid="3.066252221588648E-305">架构模式</a>，以适合大中型系统。层数不是固定的，但各个情况下都不相同。
</p>
<p>
    在架构分析期间，您通常关注两个高级层，即<b>应用</b>和<b>特定于业务</b>层。这就是<i>子系统的高级别组织</i>的意义。其他的较低层次在<a class="elementLinkWithType" href="./../../rup/tasks/incorporate_design_elements_D3C582B5.html" guid="{5C647173-4E32-4594-96A9-2548B47722FA}">Task: 合并现有设计元素</a>中考虑。如果您使用的是特定的架构模式，子系统围绕着该模式的架构模板进行定义。
</p>
<p>
    有关分层的更多信息，请参阅<a class="elementLinkWithType" href="./../../rup/guidances/guidelines/layering_FCCD1BDA.html" guid="4.458864982057142E-306">Guideline: 分层</a>。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 确定关键抽象</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_key_concepts__identifying" name="XE_key_concepts__identifying" text="确定" key="关键概念（key concepts）"></a><a id="Identify Key Concepts" name="Identify Key Concepts"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <td width="5%" colspan="2">
                    <b>目的</b>
                </td>
                <td>
                    确定系统必须处理的关键抽象概念（即业务建模任务（如果可用）和需求任务中确定的概念），为分析作准备。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    当重点为执行架构合成时，必须执行这一步骤并达到适当程度，以指导软件架构师为构造<a class="elementLinkWithType" href="./../../rup/workproducts/rup_architectural_proof_of_concept_9AF95095.html" guid="{198EA2A5-4FBA-45D5-85BA-53B108728534}">Artifact: 架构概念验证</a>选择资产，以及支持代表性的使用方案。
</p>
<p>
    业务建模任务（如果可用）和需求任务通常会揭示系统必须能够处理的关键概念；这些概念自我表明为关键的设计抽象。因为已经完成了确定，所以没有必要在<a class="elementLinkWithUserText" href="./../../rup/tasks/use_case_analysis_A6990185.html" guid="{28014615-A62F-452D-B821-30C7CAB0EC44}">任务：用例分析</a>中再重复确定工作。
</p>
<p>
    您可以通过确定初步实体分析类，利用现有的知识，根据系统的一般知识（如“要求”、<b>词汇表</b>，特别是<b>域模型</b>或者<b>业务分析模型</b>（如果您有的话））来代表这些关键抽象。
</p>
<p>
    当您定义关键抽象时，请同时定义实体类之间存在的任何关系。在一个或数个类图中展示关键抽象，并为每个抽象创建一个简短描述。根据域以及系统的新颖程度，可能已有现存的<a class="elementLinkWithUserText" href="./../../rup/guidances/termdefinitions/analysis_pattern_86D515F0.html" guid="_x613Q9nmEdmO6L4XMImrsA"><b>分析模式</b></a>，它记录了系统建模所需的许多关键抽象概念。使用这样的模式（应该已经在域中成功使用）将大大减轻了确定必须表示的重要概念的智力负担。[<a class="elementLinkWithUserText" href="./../../rup/customcategories/references_56F06DFD.html#FOW97a" guid="7.755968586980351E-308">FOW97a</a>] 展示一些分析模式，这些分析模式可以立即用于业务系统建模，但可能也可以在其他环境中应用。另一个示例是“Object Management
    Group”（OMG），它也尝试通过其“领域技术委员会”及其相关的任务工作组的工作为许多领域定义接口和协议。这一工作不可避免地会引向确定领域中的重要抽象。
</p>
<p>
    此时确定的分析类将可能在项目过程中发生更改和演变。本步骤的目的不是为了确定一组能在设计过程中存留下来的类，而是确定系统必须处理的关键概念。不要在这个初始阶段花太多时间详细描述实体类，因为存在这样的风险：您将确定的类和关系实际上并不是用例所需要的。请记住，您在查看用例时将找到更多的实体类和关系。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 确定定型的交互</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Identify Stereotypical Interactions" name="Identify Stereotypical Interactions"></a> 
<p>
    此步骤仅在“先启”阶段中的<a class="elementLinkWithType" href="./../../rup/capabilitypatterns/perform_architectural_synthesis_B63930B9.html" guid="{C67C8E56-D9B6-499C-8171-C153FB28F1C3}">Activity: 执行架构合成</a>中执行“架构分析”（此任务）时包含进去。
</p>
<p>
    本步骤的目的是确定系统中关键抽象之间的、这样的交互：这些交互可以表现系统中的重要种类的活动的特征，或者能够成为它们的代表。这些交互作为“用例实现”被记录。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 编写部署概述</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Develop Deployment Overview" name="Develop Deployment Overview"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <td width="5%" colspan="2">
                    <p align="left">
                        <b>目的</b>
                    </p>
                </td>
                <td>
                    为评估实现系统的生存能力提供基础。<br />
                    获得对系统的地理分发和操作复杂性的了解。<br />
                    为早期工作和成本估算提供基础。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    制作关于软件如何部署的高级别概述。例如，确定系统是否需要进行远程访问，或者是否有暗示跨多个节点分发的要求。要考虑的一些信息来源有：
</p>
<ul>
    <li>
        用户（在位置上），在“用户概要文件”（“愿景”中）和用例（“用例模型”中）中定义
    </li>
    <li>
        业务数据的组织（如果可用，则在“业务分析模型”和“设计模型”中）
    </li>
    <li>
        服务级别要求（在“附加规约”中）
    </li>
    <li>
        约束（在“附加规约”中，例如与旧系统对接的要求）
    </li>
</ul>
<p>
    如果要求不一般的分发系统，那么就可以使用“部署模型”来记录节点之间的关系。这应该包括临时给节点分配组件和数据，以及表明用户如何访问那些要访问数据的组件。节点和连接的详细规约被延迟 －
    除了它们对于估计或评估生存能力非常重要的场合以外。可以使用现有的资产（如果有合适的资产）。虽然这是项目中制作的第一个部署模型，而且它是快速地、在较高级别制作的，但是它还是可能会确定实际的硬件和软件产品（如果它们是已知的话，或者如果此时作出这些选择决策很重要的话）。
</p>
<p>
    验证部署模型支持执行典型用例的用户（特别是远程用户 － 如果要求的话），而同时能满足非功能要求和约束。验证节点和连接足够支持不同节点上的组件之间以及组件和它们存储的数据之间的交互。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 确定分析机制</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_analysis_mechanisms__identifying" name="XE_analysis_mechanisms__identifying" text="确定" key="分析机制（analysis mechanisms）"></a><a id="Identify Analysis Mechanisms" name="Identify Analysis Mechanisms"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <td width="5%" colspan="2">
                    <b>目的</b>
                </td>
                <td>
                    定义设计人员用来对他们的对象赋予“生命”的分析机制和服务。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    当重点为在先启阶段执行架构合成时，此任务不包括此步骤。
</p>
<p>
    分析机制可用自上而下（演绎法）或者自下而上（进展中发现）的方法来确定。在自上而下模式中，经验让软件架构师知道领域中存在某些问题，需要有某些种类的解决方案。在分析期间可能会表现为机制的常见架构问题的示例有：持久性、事务管理、故障管理、消息传递和推理引擎。所有这些问题的共同方面是每一个都是广泛的系统类的一般功能，而且每一个提供的功能都能与基本的应用程序功能交互或者支持基本的应用程序功能。分析机制支持系统的基本功能要求中要求的功能，而不管它的部署平台或实现语言是什么。分析机制也可以用许多不同的方法进行设计和实现；一般情况下，会有多个设计机制与每个分析机制相对应，而且可能会有多种方法实现每个设计机制。
</p>
<p>
    自下而上的方法用在分析机制最终生成的地方 －
    当软件架构师看见（也许一开始很微弱）各种问题的一组解决方案中显露出一个共同的主题时，分析机制得以创建。有必要提供让不同线程中的元素将它们的时间同步的方法，也有必要有分配资源的共同方法。简化分析语言的分析机制从这些模式中显露出来。
</p>
<p>
    确定分析机制意味着您确定存在着一个共同的、可能是暗含的（即系统要求暗示）子问题，并且您将它命名。一开始，名称可能就是现有的名称；例如软件架构师认识到系统将要求一个持久性机制。最后，该机制将通过<i>类集</i>的协作来实现（请参阅
    [<a class="elementLinkWithUserText" href="./../../rup/customcategories/references_56F06DFD.html#BOO98" guid="7.755968586980351E-308">BOO98</a>]），其中一些类不直接提供应用程序功能，它们的存在只是为了支持机制。这些支持类经常位于分层架构的中低层，从而向所有应用程序级别的类提供共同的支持服务。
</p>
<p>
    如果确定的子问题足够普通，那么或许会存在一个<a class="elementLink" href="./../../rup/guidances/termdefinitions/pattern_E76690AA.html" guid="_yPtUDNnmEdmO6L4XMImrsA">模式（pattern）</a>，机制可以从该模式实例化 － 通过绑定现有的类并根据模式的要求实现新的类。用这种方式制作的分析机制将是抽象的，并需要在设计和实现中进一步改进。
</p>
<p>
    关于更多信息，请参阅<a class="elementLinkWithType" href="./../../rup/guidances/concepts/analysis_mechanisms_36135B43.html" guid="9.76539014099254E-305">Concept: 分析机制</a>。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 评审结果</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Review the Results" name="Review the Results"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>目的</b>
            </td>
            <td width="95%">
                确保架构分析结果的完整性和一致性。
            </td>
        </tr>
    </table><br />
</div>
<p>
    如“架构分析”作出的结论那样，评审已经确定的架构机制、子系统、程序包和类，以确保它们的完整性和一致性。因为“架构分析”的结果是初步的，并且相对不太正式，因此评审也应该是不正式的。场景或用例可以用于验证在数个级别作出的架构选择
    － 从业务透视图向下直到发生的具体交互。
</p>
<p>
    有关评估此任务的结果的更多信息，请参阅<a class="elementLinkWithUserText" href="./../../rup/guidances/checklists/software_architecture_document_D261D8F3.html#Architectural Analysis Considerations" guid="7.634303669338443E-306">核对表：软件架构文档 － 架构分析考虑事项</a>。
</p><br />
<br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Properties</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Multiple Occurrences" abbr="Multiple Occurrences">Multiple Occurrences</th><td class="sectionTableCell" align="left" headers="property_Multiple Occurrences"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Event Driven" abbr="Event Driven">Event Driven</th><td class="sectionTableCell" align="left" headers="property_Event Driven"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Ongoing" abbr="Ongoing">Ongoing</th><td class="sectionTableCell" align="left" headers="property_Ongoing"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Optional" abbr="Optional">Optional</th><td class="sectionTableCell" align="left" headers="property_Optional"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Planned" abbr="Planned">Planned</th><td class="sectionTableCell" align="left" headers="property_Planned"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Repeatable" abbr="Repeatable">Repeatable</th><td class="sectionTableCell" align="left" headers="property_Repeatable"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
